YOLOv5自定义数据集

1.数据集结构

 文件的结构可以设置成这样:

YOLO_dir
└─ mydata
       ├─ images
       │    ├─ test # 下面放测试集图片
       │    ├─ train # 下面放训练集图片
       │    └─ val # 下面放验证集图片
       └─ labels
              ├─ test # 下面放测试集标签
              ├─ train # 下面放训练集标签
              ├─ val # 下面放验证集标签

比较简单的yaml文件如下(name列表要按照标准的顺序,文件路径是反斜杆):

train: D:/company/py/yolo_dir/mydata/images/train
val: D:/company/py/yolo_dir/mydata/images/val



# Classes
nc: 6  # number of classes
names: ['broccoli','giraffe','potted plant','zebra','people','shoes']  # class names

YOLOv5数可以自动定位标签的位置,原理是吧images替换成labels,因此就按照这样的格式就好了。因此yaml文件不需要指定标签的位置

小规模时,训练集与验证集比例为7:3(或8:2),如果有测试集,则为6:2:2参考

2.通过roboflow生成(官方

1.1总体流程

标注工具齐全,并且都是在线保存,此外,还可以自动划分数据集、自动生成yaml文件

  1. 上传文件夹
  2. 这里推荐这样选择

  3. 不需要做数据增强,因为YOLOv5自带了数据增强
  4. 导出为YOLOv5格式

1.2 常用快捷键

CTRL--可以切换手与选择框

backspace--连续两次可以把框删除

左右按键--翻页

3.通过labelimg生成

  •  pip install labelImg安装标注工具
  • 在conda环境中直接输入labelImg可以打开
  • linxu中lableImg(i要大写)

  1. 点击pascalvoc,切换成YOLO
  2. opendir打开需要标注的图像的具体位置
  3. change save data 确定标注文件夹的位置(路径不要有中文)
  4. 标注完成后点击保存

可以设置自动保存 

4.Tips for Best Training Results

官方参考

  1. 先尝试默认的参数进行训练
  2. 图片数据要足够,官方建议的是超过1500张
  3. 图像要变化(时间、角度、光线、大小、不同相机等)
  4. 物体要标注精确,尽量做到boundingbox和物体之间没有间隙
  5. 增加背景图片(No label),数量大概占据0~10%。这可以降低FALSE POSITIVES(FP)。背景图片的标签文件.txt文空文件,但是文件名要对应。
  6. 使用YOLO家族大型模型,一是训练慢,二是后面预测慢,但是优点在于精度高
  7. 默认300epochs,如果发生过拟合了,我可以减少epoch
  8. 当小目标多的时候,分辨率高训练效果好。因此可以设置--img 1280。如果训练的时候改了--img参数,那么预测也要改
  9. batch-size应该尽可能大,因为其除了影响训练速度外。如果batch-size太小,会产生不好的batchnorm statistics(BN)

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值